home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir43 / qsrc_dsk.zip / MODEL / BUDGET.SPR < prev    next >
Text File  |  1992-01-13  |  23KB  |  693 lines

  1. *       ╓─────────────────────────────────────────────────────────╖
  2. *       ║                                                         ║
  3. *       ║ 01/13/92             BUDGET.SPR                23:50:16 ║
  4. *       ║                                                         ║
  5. *       ╟─────────────────────────────────────────────────────────╢
  6. *       ║                                                         ║
  7. *       ║ Lisa C. Slater and Steven E. Arnott                     ║
  8. *       ║                                                         ║
  9. *       ║ Copyright (c) 1992                                      ║
  10. *       ║ Application developed for _Using FoxPro 2_              ║
  11. *       ║ Que Publishing Corporation                              ║
  12. *       ║ ISBN 0-88022-703-6                                      ║
  13. *       ║                                                         ║
  14. *       ║ Description:                                            ║
  15. *       ║ This program was automatically generated by GENSCRN.    ║
  16. *       ║                                                         ║
  17. *       ╙─────────────────────────────────────────────────────────╜
  18.  
  19.  
  20. *       ╓─────────────────────────────────────────────────────────╖
  21. *       ║                                                         ║
  22. *       ║              BUDGET Setup Code - SECTION 1              ║
  23. *       ║                                                         ║
  24. *       ╙─────────────────────────────────────────────────────────╜
  25. *
  26.  
  27. #REGION 1
  28. * #REDEFINE generator directive in case
  29. * file has been interactively BROWSEd under
  30. * WIDGET.MPR, which would result in a window
  31. * of the same name already existing because we
  32. * named these windows the same as the files!
  33. * A browse window is named by its title and
  34. * its default title is its ALIAS.
  35.  
  36. #REGION 0
  37. REGIONAL m.currarea, m.talkstat, m.compstat
  38.  
  39. IF SET("TALK") = "ON"
  40.     SET TALK OFF
  41.     m.talkstat = "ON"
  42. ELSE
  43.     m.talkstat = "OFF"
  44. ENDIF
  45. m.compstat = SET("COMPATIBLE")
  46. SET COMPATIBLE FOXPLUS
  47.  
  48. m.currarea = SELECT()
  49.  
  50.  
  51. *       ╓─────────────────────────────────────────────────────────╖
  52. *       ║                                                         ║
  53. *       ║         S9994048 Databases, Indexes, Relations          ║
  54. *       ║                                                         ║
  55. *       ╙─────────────────────────────────────────────────────────╜
  56. *
  57.  
  58. IF USED("budcat")
  59.     SELECT budcat
  60.     SET ORDER TO TAG "budcatcode"
  61. ELSE
  62.     SELECT 0
  63.     USE (LOCFILE("budcat.dbf","DBF","Where is budcat?"));
  64.         AGAIN ALIAS budcat ;
  65.         ORDER TAG "budcatcode"
  66. ENDIF
  67.  
  68. IF USED("budget")
  69.     SELECT budget
  70.     SET ORDER TO 0
  71. ELSE
  72.     SELECT 0
  73.     USE (LOCFILE("budget.dbf","DBF","Where is budget?"));
  74.         AGAIN ALIAS budget ;
  75.         ORDER 0
  76. ENDIF
  77.  
  78. IF USED("product")
  79.     SELECT product
  80.     SET ORDER TO TAG "prodcode"
  81. ELSE
  82.     SELECT 0
  83.     USE (LOCFILE("product.dbf","DBF","Where is product?"));
  84.         AGAIN ALIAS product ;
  85.         ORDER TAG "prodcode"
  86. ENDIF
  87.  
  88. IF USED("dept")
  89.     SELECT dept
  90.     SET ORDER TO TAG "deptcode"
  91. ELSE
  92.     SELECT 0
  93.     USE (LOCFILE("dept.dbf","DBF","Where is dept?"));
  94.         AGAIN ALIAS dept ;
  95.         ORDER TAG "deptcode"
  96. ENDIF
  97.  
  98. SELECT budget
  99.  
  100. SET RELATION OFF INTO budcat
  101. SET RELATION TO budget.budcatcode INTO budcat ADDITIVE
  102.  
  103. SET RELATION OFF INTO product
  104. SET RELATION TO prodcode INTO product ADDITIVE
  105.  
  106. SET RELATION OFF INTO dept
  107. SET RELATION TO deptcode INTO dept ADDITIVE
  108.  
  109. SELECT budget
  110.  
  111. *       ╓─────────────────────────────────────────────────────────╖
  112. *       ║                                                         ║
  113. *       ║                    Window definitions                   ║
  114. *       ║                                                         ║
  115. *       ╙─────────────────────────────────────────────────────────╜
  116. *
  117.  
  118. DEFINE WINDOW budget ;
  119.     FROM 1, 1 ;
  120.     TO 18,78 ;
  121.     TITLE " Budget Table " ;
  122.     FLOAT ;
  123.     NOCLOSE ;
  124.     SHADOW ;
  125.     MINIMIZE ;
  126.     COLOR SCHEME 10
  127.  
  128.  
  129. *       ╓─────────────────────────────────────────────────────────╖
  130. *       ║                                                         ║
  131. *       ║              BUDGET Setup Code - SECTION 2              ║
  132. *       ║                                                         ║
  133. *       ╙─────────────────────────────────────────────────────────╜
  134. *
  135.  
  136. #REGION 1
  137. old_sys = SET("SYSMENU")
  138. SET SYSMENU AUTOMATIC
  139. SELECT dept
  140. DIMENSION deptarray(RECCOUNT(),2)
  141. COPY TO ARRAY deptarray FIELDS deptname,deptcode ALL
  142. SELECT budcat
  143. DEFINE POPUP budcat FROM 1,28 IN budget ;
  144.    TITLE " Pick Category " SCROLL PROMPT FIELD budcat
  145. ON SELECTION POPUP budcat DEACTIVATE POPUP
  146. SELECT budget
  147. SCATTER MEMVAR MEMO
  148. DO CASE
  149. CASE UPPER(ORDER()) = "PERIOD"
  150.    m.order = 2
  151. CASE UPPER(ORDER()) = "DEPTCODE"
  152.    m.order = 3
  153. CASE UPPER(ORDER()) = "BUDCATCODE"
  154.    m.order = 4
  155. OTHERWISE
  156.    SET ORDER TO 0
  157.    m.order = 1
  158. ENDCASE
  159. m.budcatname =IIF( EMPTY(m.budcatcode),SPACE(20), budcat.budcat)
  160.  
  161. m.dept = IIF(EMPTY(m.deptcode), ;
  162. 0, ASUBSCRIPT("deptarray",ASCAN("deptarray",m.deptcode),1) )
  163.  
  164. m.product = IIF(EMPTY(m.prodcode), " ", product.prodname)
  165.  
  166. DEFINE WINDOW brow FROM 20,12 TO SROWS()-2,68 SYSTEM FLOAT GROW ZOOM COLOR SCHEME 10
  167. BROWSE SAVE NOWAIT NOEDIT WINDOW brow PREFERENCE Budgentry;
  168.    TITLE " Pick Budget Entry  " WHEN Do_Show()
  169. RELEASE WINDOW brow
  170.  
  171.  
  172. #REGION 1
  173. DEFINE POPUP _q291f3dqs ;
  174.     PROMPT FIELD product.prodname ;
  175.     SCROLL ;
  176.     MARGIN ;
  177.     MARK ""
  178.  
  179.  
  180. *       ╓─────────────────────────────────────────────────────────╖
  181. *       ║                                                         ║
  182. *       ║                  BUDGET Screen Layout                   ║
  183. *       ║                                                         ║
  184. *       ╙─────────────────────────────────────────────────────────╜
  185. *
  186.  
  187. #REGION 1
  188. IF WVISIBLE("budget")
  189.     ACTIVATE WINDOW budget SAME
  190. ELSE
  191.     ACTIVATE WINDOW budget NOSHOW
  192. ENDIF
  193. @ 0,0 TO 10,75
  194. @ 0,28 SAY " Edit this Record "
  195. @ 2,12 SAY "Period:"
  196. @ 4,3 SAY "Budgeted Amount:"
  197. @ 6,3 SAY "Budget Category:"
  198. @ 6,24 TO 6,25
  199. @ 8,24 TO 8,25
  200. @ 6,25 TO 8,25
  201. @ 8,25 SAY "┘"
  202. @ 6,25 SAY "┐"
  203. @ 8,23 TO 8,23 ""
  204. @ 1,55 SAY "Notes:"
  205. @ 11,5 SAY "Order Table By:"
  206. @ 2,20 GET m.period ;
  207.     SIZE 1,8 ;
  208.     DEFAULT {  /  /  } ;
  209.     PICTURE "@K" ;
  210.     VALID _q291f3e3y()
  211. @ 4,20 GET m.budgetamt ;
  212.     SIZE 1,7 ;
  213.     DEFAULT 0 ;
  214.     PICTURE "@K$"
  215. @ 6,20 GET m.budcatcode ;
  216.     SIZE 1,4 ;
  217.     DEFAULT " " ;
  218.     PICTURE "@! AAAN" ;
  219.     WHEN valbudcat() ;
  220.     VALID _q291f3ecw()
  221. @ 8,3 GET m.budcatname ;
  222.     SIZE 1,20 ;
  223.     DEFAULT " " ;
  224.     DISABLE
  225. @ 1,30 GET m.product ;
  226.     PICTURE "@&N" ;
  227.     POPUP _q291f3dqs ;
  228.     SIZE 5,23 ;
  229.     DEFAULT " " ;
  230.     VALID _q291f3ekw() ;
  231.     COLOR SCHEME 9
  232. @ 6,30 GET m.dept ;
  233.     PICTURE "@^" ;
  234.     FROM deptarray ;
  235.     SIZE 3,23 ;
  236.     DEFAULT 1 ;
  237.     VALID _q291f3esf() ;
  238.     COLOR SCHEME 10, 9
  239. @ 2,55 EDIT m.notes ;
  240.     SIZE 7,18,180 ;
  241.     DEFAULT " " ;
  242.     SCROLL
  243. @ 10,28 GET m.final ;
  244.     PICTURE "@*C \<Finalize Entry? " ;
  245.     SIZE 1,20 ;
  246.     DEFAULT 0 ;
  247.     VALID _q291f3f19() ;
  248.     COLOR SCHEME 4
  249. @ 12,29 GET saveit ;
  250.     PICTURE "@*VN   \!\<Cancel Edit  ; \<Save Changes" ;
  251.     SIZE 1,17,1 ;
  252.     DEFAULT 1 ;
  253.     VALID _q291f3f9g() ;
  254.     COLOR SCHEME 8
  255. @ 12,6 GET m.order ;
  256.     PICTURE "@*RVN No Order ;Period  ;Dept;Category" ;
  257.     SIZE 1,13,0 ;
  258.     DEFAULT 1 ;
  259.     VALID _q291f3fk3()
  260. @ 12,50 GET m.query1 ;
  261.     PICTURE "@*IVN " ;
  262.     SIZE 1,25,1 ;
  263.     DEFAULT 0 ;
  264.     VALID _q291f3ftp()
  265. @ 14,50 GET m.query2 ;
  266.     PICTURE "@*IVN " ;
  267.     SIZE 1,25,1 ;
  268.     DEFAULT 0 ;
  269.     VALID _q291f3g2a()
  270. @ 12,53 SAY "√ Dept Totals For Pd" ;
  271.     SIZE 1,20
  272. @ 14,50 SAY "√ Product Totals For Year" ;
  273.     SIZE 1,25
  274.  
  275. IF NOT WVISIBLE("budget")
  276.     ACTIVATE WINDOW budget
  277. ENDIF
  278.  
  279. READ CYCLE ;
  280.     ACTIVATE _q291f3gc2() ;
  281.     SHOW _q291f3gc7()
  282.  
  283. RELEASE WINDOW budget
  284.  
  285. *       ╓─────────────────────────────────────────────────────────╖
  286. *       ║                                                         ║
  287. *       ║                    Closing Databases                    ║
  288. *       ║                                                         ║
  289. *       ╙─────────────────────────────────────────────────────────╜
  290. *
  291.  
  292. IF USED("budcat")
  293.     SELECT budcat
  294.     USE
  295. ENDIF
  296.  
  297. IF USED("budget")
  298.     SELECT budget
  299.     USE
  300. ENDIF
  301.  
  302. IF USED("product")
  303.     SELECT product
  304.     USE
  305. ENDIF
  306.  
  307. IF USED("dept")
  308.     SELECT dept
  309.     USE
  310. ENDIF
  311.  
  312. SELECT (m.currarea)
  313.  
  314. RELEASE POPUPS _q291f3dqs
  315.  
  316. #REGION 0
  317. IF m.talkstat = "ON"
  318.     SET TALK ON
  319. ENDIF
  320. IF m.compstat = "ON"
  321.     SET COMPATIBLE ON
  322. ENDIF
  323.  
  324.  
  325. *       ╓─────────────────────────────────────────────────────────╖
  326. *       ║                                                         ║
  327. *       ║                   BUDGET Cleanup Code                   ║
  328. *       ║                                                         ║
  329. *       ╙─────────────────────────────────────────────────────────╜
  330. *
  331.  
  332. #REGION 1
  333. SET SYSMENU &old_sys
  334. RELEASE WINDOW "Pick"
  335. RELEASE POPUP budcat
  336. RELEASE deptarray
  337. RETURN
  338.  
  339. PROCEDURE no_edit
  340. SHOW GET m.period DISABLE
  341. SHOW GET m.budgetamt DISABLE
  342. SHOW GET m.budcatcode DISABLE
  343. SHOW GET m.product DISABLE
  344. SHOW GET m.dept DISABLE
  345. SHOW GET m.final DISABLE
  346. _CUROBJ = OBJNUM(m.notes)
  347. RETURN
  348.  
  349. PROCEDURE can_edit
  350. SHOW GET m.period ENABLE
  351. SHOW GET m.budgetamt ENABLE
  352. SHOW GET m.budcatcode ENABLE
  353. SHOW GET m.product ENABLE
  354. SHOW GET m.dept ENABLE
  355. _CUROBJ = OBJNUM(m.period)
  356. DO can_final
  357. RETURN
  358.  
  359.  
  360. FUNCTION valbudcat
  361. IF EMPTY(m.budcatcode) OR NOT SEEK(m.budcatcode,"budcat")
  362.    ACTIVATE POPUP budcat
  363.    SELECT budget
  364.    STORE budcat.budcatcode TO m.budcatcode
  365.    STORE budcat.budcat TO m.budcatname
  366.    SHOW GET m.budcatname DISABLE
  367. ENDIF
  368. RETURN .T.
  369.  
  370. FUNCTION to_final
  371. mreturn = .F.
  372. IF m.final
  373.    DO no_edit
  374.    mreturn = .T.
  375. ELSE
  376.    IF  ! m.final AND ! EMPTY(m.period) AND (m.period < DATE() OR (YEAR(m.period) = YEAR(DATE()) AND pd(m.period) = pd(DATE())))
  377.       STORE .T. TO m.final
  378.       WAIT WINDOW NOWAIT "Entry in past or present Periods must be Final."
  379.       DO no_edit
  380.       mreturn = .T.
  381.    ENDIF
  382. ENDIF
  383. RETURN mreturn
  384.  
  385. PROCEDURE can_final
  386. IF EMPTY(m.prodcode) OR EMPTY(m.deptcode) OR EMPTY(m.budcatcode) OR EMPTY(m.period)
  387.    SHOW GET m.final DISABLE
  388. ELSE
  389.    SHOW GET m.final ENABLE
  390. ENDIF
  391. RETURN
  392.  
  393. FUNCTION pd
  394. PARAMETERS the_date
  395. RETURN CEILING(MONTH(the_date)/3)
  396.  
  397. FUNCTION do_show
  398. SHOW GETS
  399. SHOW WINDOW "Pick" REFRESH
  400. RETURN .F.
  401.  
  402.  
  403. *       ╓─────────────────────────────────────────────────────────╖
  404. *       ║                                                         ║
  405. *       ║ _Q291F3E3Y           m.period VALID                     ║
  406. *       ║                                                         ║
  407. *       ║ Function Origin:                                        ║
  408. *       ║                                                         ║
  409. *       ║ From Screen:         BUDGET,     Record Number:   22    ║
  410. *       ║ Variable:            m.period                           ║
  411. *       ║ Called By:           VALID Clause                       ║
  412. *       ║ Object Type:         Field                              ║
  413. *       ║ Snippet Number:      1                                  ║
  414. *       ║                                                         ║
  415. *       ╙─────────────────────────────────────────────────────────╜
  416. *
  417. FUNCTION _q291f3e3y     &&  m.period VALID
  418. #REGION 1
  419. IF ! to_final()
  420.    DO can_final
  421. ENDIF
  422. RETURN .T.
  423.  
  424.  
  425. *       ╓─────────────────────────────────────────────────────────╖
  426. *       ║                                                         ║
  427. *       ║ _Q291F3ECW           m.budcatcode VALID                 ║
  428. *       ║                                                         ║
  429. *       ║ Function Origin:                                        ║
  430. *       ║                                                         ║
  431. *       ║ From Screen:         BUDGET,     Record Number:   24    ║
  432. *       ║ Variable:            m.budcatcode                       ║
  433. *       ║ Called By:           VALID Clause                       ║
  434. *       ║ Object Type:         Field                              ║
  435. *       ║ Snippet Number:      2                                  ║
  436. *       ║                                                         ║
  437. *       ╙─────────────────────────────────────────────────────────╜
  438. *
  439. FUNCTION _q291f3ecw     &&  m.budcatcode VALID
  440. #REGION 1
  441. =valbudcat()
  442. DO can_final
  443.  
  444. *       ╓─────────────────────────────────────────────────────────╖
  445. *       ║                                                         ║
  446. *       ║ _Q291F3EKW           m.product VALID                    ║
  447. *       ║                                                         ║
  448. *       ║ Function Origin:                                        ║
  449. *       ║                                                         ║
  450. *       ║ From Screen:         BUDGET,     Record Number:   26    ║
  451. *       ║ Variable:            m.product                          ║
  452. *       ║ Called By:           VALID Clause                       ║
  453. *       ║ Object Type:         List                               ║
  454. *       ║ Snippet Number:      3                                  ║
  455. *       ║                                                         ║
  456. *       ╙─────────────────────────────────────────────────────────╜
  457. *
  458. FUNCTION _q291f3ekw     &&  m.product VALID
  459. #REGION 1
  460. IF ! EMPTY(m.product)
  461.   STORE product.prodcode TO m.prodcode
  462.   DO can_final
  463. ENDIF
  464.  
  465. *       ╓─────────────────────────────────────────────────────────╖
  466. *       ║                                                         ║
  467. *       ║ _Q291F3ESF           m.dept VALID                       ║
  468. *       ║                                                         ║
  469. *       ║ Function Origin:                                        ║
  470. *       ║                                                         ║
  471. *       ║ From Screen:         BUDGET,     Record Number:   27    ║
  472. *       ║ Variable:            m.dept                             ║
  473. *       ║ Called By:           VALID Clause                       ║
  474. *       ║ Object Type:         Popup                              ║
  475. *       ║ Snippet Number:      4                                  ║
  476. *       ║                                                         ║
  477. *       ╙─────────────────────────────────────────────────────────╜
  478. *
  479. FUNCTION _q291f3esf     &&  m.dept VALID
  480. #REGION 1
  481. IF ! EMPTY(m.dept)
  482.  STORE deptarray(m.dept,2) ;
  483.  TO m.deptcode
  484.  DO can_final
  485. ENDIF
  486.  
  487. *       ╓─────────────────────────────────────────────────────────╖
  488. *       ║                                                         ║
  489. *       ║ _Q291F3F19           m.final VALID                      ║
  490. *       ║                                                         ║
  491. *       ║ Function Origin:                                        ║
  492. *       ║                                                         ║
  493. *       ║ From Screen:         BUDGET,     Record Number:   29    ║
  494. *       ║ Variable:            m.final                            ║
  495. *       ║ Called By:           VALID Clause                       ║
  496. *       ║ Object Type:         Check Box                          ║
  497. *       ║ Snippet Number:      5                                  ║
  498. *       ║                                                         ║
  499. *       ╙─────────────────────────────────────────────────────────╜
  500. *
  501. FUNCTION _q291f3f19     &&  m.final VALID
  502. #REGION 1
  503. IF m.final
  504.    WAIT WINDOW " Finalized Budget Entries are not editable. " NOWAIT
  505.    DO no_edit
  506. ENDIF
  507.  
  508.  
  509. *       ╓─────────────────────────────────────────────────────────╖
  510. *       ║                                                         ║
  511. *       ║ _Q291F3F9G           saveit VALID                       ║
  512. *       ║                                                         ║
  513. *       ║ Function Origin:                                        ║
  514. *       ║                                                         ║
  515. *       ║ From Screen:         BUDGET,     Record Number:   30    ║
  516. *       ║ Variable:            saveit                             ║
  517. *       ║ Called By:           VALID Clause                       ║
  518. *       ║ Object Type:         Push Button                        ║
  519. *       ║ Snippet Number:      6                                  ║
  520. *       ║                                                         ║
  521. *       ╙─────────────────────────────────────────────────────────╜
  522. *
  523. FUNCTION _q291f3f9g     &&  saveit VALID
  524. #REGION 1
  525. mreturn = .T.
  526. IF saveit = 2
  527.    IF EMPTY(m.deptcode) OR EMPTY(m.budcatcode) OR EMPTY(m.period) OR EMPTY(m.prodcode)
  528.       WAIT WINDOW " Fill out all information before Saving, or Cancel Edit " NOWAIT
  529.       mreturn = .F.
  530.    ELSE
  531.       GATHER MEMVAR MEMO
  532.       SHOW GETS
  533.    ENDIF
  534. ELSE
  535.    WAIT WINDOW " Editing Cancelled " NOWAIT
  536.    SHOW GETS
  537. ENDIF
  538. RETURN mreturn
  539.  
  540.  
  541. *       ╓─────────────────────────────────────────────────────────╖
  542. *       ║                                                         ║
  543. *       ║ _Q291F3FK3           m.order VALID                      ║
  544. *       ║                                                         ║
  545. *       ║ Function Origin:                                        ║
  546. *       ║                                                         ║
  547. *       ║ From Screen:         BUDGET,     Record Number:   31    ║
  548. *       ║ Variable:            m.order                            ║
  549. *       ║ Called By:           VALID Clause                       ║
  550. *       ║ Object Type:         Radio Button                       ║
  551. *       ║ Snippet Number:      7                                  ║
  552. *       ║                                                         ║
  553. *       ╙─────────────────────────────────────────────────────────╜
  554. *
  555. FUNCTION _q291f3fk3     &&  m.order VALID
  556. #REGION 1
  557. DO CASE
  558. CASE m.order = 1
  559.   SET ORDER TO 0
  560. CASE m.order = 2
  561.   SET ORDER TO period
  562. CASE m.order = 3
  563.   SET ORDER TO deptcode
  564. CASE m.order = 4
  565.   SET ORDER TO budcatcode
  566. ENDCASE
  567. SHOW WINDOW Pick REFRESH
  568.  
  569.  
  570.  
  571. *       ╓─────────────────────────────────────────────────────────╖
  572. *       ║                                                         ║
  573. *       ║ _Q291F3FTP           m.query1 VALID                     ║
  574. *       ║                                                         ║
  575. *       ║ Function Origin:                                        ║
  576. *       ║                                                         ║
  577. *       ║ From Screen:         BUDGET,     Record Number:   32    ║
  578. *       ║ Variable:            m.query1                           ║
  579. *       ║ Called By:           VALID Clause                       ║
  580. *       ║ Snippet Number:      8                                  ║
  581. *       ║                                                         ║
  582. *       ╙─────────────────────────────────────────────────────────╜
  583. *
  584. FUNCTION _q291f3ftp     &&  m.query1 VALID
  585. #REGION 1
  586. DO budget1.qpr
  587. * output to a cursor
  588. BROWSE
  589. * couldn't set up the BROWSE
  590. * in the QPR because it
  591. * will set up a preference
  592. * by the name of the cursor
  593. * that it invents,
  594. * which is BUDGET_A -- this
  595. * preference is then invalid
  596. * for the other query button
  597. SELECT budget
  598.  
  599. *       ╓─────────────────────────────────────────────────────────╖
  600. *       ║                                                         ║
  601. *       ║ _Q291F3G2A           m.query2 VALID                     ║
  602. *       ║                                                         ║
  603. *       ║ Function Origin:                                        ║
  604. *       ║                                                         ║
  605. *       ║ From Screen:         BUDGET,     Record Number:   33    ║
  606. *       ║ Variable:            m.query2                           ║
  607. *       ║ Called By:           VALID Clause                       ║
  608. *       ║ Snippet Number:      9                                  ║
  609. *       ║                                                         ║
  610. *       ╙─────────────────────────────────────────────────────────╜
  611. *
  612. FUNCTION _q291f3g2a     &&  m.query2 VALID
  613. #REGION 1
  614. DO budget2.qpr
  615. * output to a cursor
  616. BROWSE
  617. * couldn't set up the BROWSE
  618. * in the QPR because it
  619. * will set up a preference
  620. * by the name of the cursor
  621. * that it invents,
  622. * which is BUDGET_A -- this
  623. * preference is then invalid
  624. * for the other query button
  625. SELECT budget
  626.  
  627. *       ╓─────────────────────────────────────────────────────────╖
  628. *       ║                                                         ║
  629. *       ║ _Q291F3GC2           Read Level Activate                ║
  630. *       ║                                                         ║
  631. *       ║ Function Origin:                                        ║
  632. *       ║                                                         ║
  633. *       ║ From Screen:         BUDGET                             ║
  634. *       ║ Called By:           READ Statement                     ║
  635. *       ║ Snippet Number:      10                                 ║
  636. *       ║                                                         ║
  637. *       ╙─────────────────────────────────────────────────────────╜
  638. *
  639. FUNCTION _q291f3gc2     && Read Level Activate
  640. *
  641. * Activate Code from screen: BUDGET
  642. *
  643. #REGION 1
  644. IF ! WVISIBLE("Pick")
  645.    CLEAR READ
  646. ENDIF
  647.  
  648.  
  649.  
  650. *       ╓─────────────────────────────────────────────────────────╖
  651. *       ║                                                         ║
  652. *       ║ _Q291F3GC7           Read Level Show                    ║
  653. *       ║                                                         ║
  654. *       ║ Function Origin:                                        ║
  655. *       ║                                                         ║
  656. *       ║ From Screen:         BUDGET                             ║
  657. *       ║ Called By:           READ Statement                     ║
  658. *       ║ Snippet Number:      11                                 ║
  659. *       ║                                                         ║
  660. *       ╙─────────────────────────────────────────────────────────╜
  661. *
  662. FUNCTION _q291f3gc7     && Read Level Show
  663. PRIVATE currwind
  664. STORE WOUTPUT() TO currwind
  665. *
  666. * Show Code from screen: BUDGET
  667. *
  668. #REGION 1
  669. IF ! budget.final AND ! EMPTY(budget.period) AND (budget.period < DATE() OR (YEAR(budget.period) = YEAR(DATE()) AND pd(budget.period) = pd(DATE())))
  670.    REPLACE budget.final WITH .T.
  671.     WAIT WINDOW NOWAIT "Entry in past or present Periods must be Final."
  672. ENDIF
  673. SCATTER MEMVAR MEMO
  674. m.budcatname =IIF( EMPTY(m.budcatcode),SPACE(20), budcat.budcat)
  675. m.dept = IIF(EMPTY(m.deptcode), ;
  676. 0, ASUBSCRIPT("deptarray",ASCAN("deptarray",m.deptcode),1))
  677. m.product = IIF(EMPTY(m.prodcode), " ", product.prodname)
  678. IF m.final
  679.    DO no_edit
  680. ELSE
  681.    DO can_edit
  682. ENDIF
  683.  
  684. IF SYS(2016) = "BUDGET" OR SYS(2016) = "*"
  685.     ACTIVATE WINDOW budget SAME
  686.     @ 12,53 SAY "√ Dept Totals For Pd" ;
  687.         SIZE 1,20
  688.     @ 14,50 SAY "√ Product Totals For Year" ;
  689.         SIZE 1,25
  690. ENDIF
  691. IF NOT EMPTY(currwind)
  692.     ACTIVATE WINDOW (currwind) SAME
  693. ENDIF